{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 本周学习内容\n",
    "\n",
    "### 1. 课本项目直接运行\n",
    "\n",
    "### 2. 认识变量\n",
    "\n",
    "### 3. 赋值的概念\n",
    "\n",
    "### 4. python语言的基本数据结构：（文本、数值）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "28"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 回顾上周 模块.tab\n",
    "import datetime\n",
    "datetime.datetime.today().minute"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "This minute seems a little odd.\n"
     ]
    }
   ],
   "source": [
    "# 1. 课本项目直接运行\n",
    "# 先找到模块，然后从模块中调用一个方法 ： from 模块名字 import 模块方法\n",
    "from datetime import datetime\n",
    "\n",
    "odds = [  1, 3,  5,  7,  9, 11,13,15,17,19,\n",
    "             21,23,25,27,29,31,33,35,37,39,\n",
    "             41,43,45,47,49,51,53,55,57,59]\n",
    "\n",
    "right_this_minute = datetime.today().minute # 一直在变化的当前时间的   分钟数\n",
    "\n",
    "if right_this_minute in odds:\n",
    "    # if 语句的子程序 会自动空 Tab键的间隔，如果没有空，不符合语法规则\n",
    "    # if 语句子程序不能为空，也就是至少要有一行子程序，如果还不清楚要写的子程序，可以使用\n",
    "    # pass\n",
    "    print(\"This minute seems a little odd.\")\n",
    "else:\n",
    "    print(\"Not an odd minute.\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "> 1. 变量的概念\n",
    ">> *  **变量**用于存储在计算机程序中引用和操作的信息。它们还提供了一种用描述性名称标记数据的方法，以便读者和我们自己能够更清楚地理解我们的程序。将变量看作包含信息的容器是有帮助的。它们的唯一目的是在内存中标记和存储数据。然后可以在整个程序中使用这些数据。\n",
    "> 2. 变量名称的规范\n",
    ">> 1. 变量名称只可以用 数字、字母和下划线来定义名称\n",
    ">> 2. 数字不可以作为变量名的第一个字符 （stu10001）\n",
    ">> 3. 内部（开发团队）已经使用过的名称不可以作为变量名,例如：\n",
    ">> 4. 如果你实在想定义一个已经被用过名字：global_zhichao \\ print_zhichao\n",
    "```\n",
    "['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda','not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']\n",
    "```"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Jack\n"
     ]
    }
   ],
   "source": [
    "# 变量实践1\n",
    "name = \"Jack\"\n",
    "print(name)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Xu Zhichao\n"
     ]
    }
   ],
   "source": [
    "# 变量实践2\n",
    "first_name = \"Xu\"\n",
    "last_name = \"Zhichao\"\n",
    "name = first_name+' '+last_name\n",
    "print(name)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Alex Alex\n",
      "LI,Alex Alex\n"
     ]
    }
   ],
   "source": [
    "# 变量实践3\n",
    "name_01 = \"Alex\"\n",
    "name_02 = name_01\n",
    "\n",
    "print(name_01,name_02)\n",
    "\n",
    "name_01 = \"LI,Alex\"\n",
    "\n",
    "print(name_01,name_02)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'str'>\n"
     ]
    }
   ],
   "source": [
    "print(type(name_01))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 以上结果原因：\n",
    "# python是一门解释性语言，是一行一行执行的，没有特定的要求，是不会重复运行上一行代码的"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* 已经完成上述的同学：\n",
    "\n",
    "> 1. 阅读字符串概念\n",
    ">> 1. [字符串](https://docs.python.org/3/tutorial/introduction.html#strings)\n",
    ">> 2. [字符串方法](https://docs.python.org/3/library/stdtypes.html#text-sequence-type-str)\n",
    "> 2. 阅读数值概念\n",
    ">> 1. [数值](https://docs.python.org/3/tutorial/introduction.html#numbers)\n",
    ">> 2. [数值方法](https://docs.python.org/3/library/stdtypes.html#numeric-types-int-float-complex)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 字符串 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "ename": "SyntaxError",
     "evalue": "invalid syntax (<ipython-input-19-0ee3575e3174>, line 2)",
     "output_type": "error",
     "traceback": [
      "\u001b[1;36m  File \u001b[1;32m\"<ipython-input-19-0ee3575e3174>\"\u001b[1;36m, line \u001b[1;32m2\u001b[0m\n\u001b[1;33m    phrase = 'doesn't' # 错误的使用\u001b[0m\n\u001b[1;37m                    ^\u001b[0m\n\u001b[1;31mSyntaxError\u001b[0m\u001b[1;31m:\u001b[0m invalid syntax\n"
     ]
    }
   ],
   "source": [
    "# invalid syntax 语法错误\n",
    "phrase = 'doesn't' # 错误的使用\n",
    "phrase"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "\"doesn't\""
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\"doesn't\" # 解决方案1\n",
    "'doesn\\'t' # 解决方案2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "ename": "IndentationError",
     "evalue": "unindent does not match any outer indentation level (<tokenize>, line 43)",
     "output_type": "error",
     "traceback": [
      "\u001b[1;36m  File \u001b[1;32m\"<tokenize>\"\u001b[1;36m, line \u001b[1;32m43\u001b[0m\n\u001b[1;33m    </div>\u001b[0m\n\u001b[1;37m    ^\u001b[0m\n\u001b[1;31mIndentationError\u001b[0m\u001b[1;31m:\u001b[0m unindent does not match any outer indentation level\n"
     ]
    }
   ],
   "source": [
    "# 字符串 三引号 \"\"\"  \"\"\"  或者 '''   '''\n",
    "# 三引号 可以存储较为复杂的文本数据（例如可以存 其他语言的 数据）\n",
    "广州南方学院官网_HTML = \"\"\"\n",
    "<div class=\"lin-header \">\n",
    "\t\t<div class=\"lin-head clearfix\">\n",
    "\t\t\t<h1 class=\"lin-topl\">\n",
    "\t\t\t\t<a href=\"index.htm\" target=\"_blank\" title=\"广州南方学院\">\n",
    "\t\t\t\t\t<img src=\"images/logo.png\">\n",
    "\t\t\t\t</a>\n",
    "\t\t\t</h1>\n",
    "\t\t\t<div class=\"lin-topr\">\n",
    "\t\t\t\t<div class=\"lin-youxiang\">\n",
    "\t\t\t\t\t<!--<a href=\"http://oa.nfu.edu.cn/\" target=\"_blank\">办公系统</a>-->\n",
    "\t\t\t\t\t<a href=\"xcyx/index.htm\">校长邮箱</a>\n",
    "\t\t\t\t\t<a href=\"http://en.nfu.edu.cn/\">English Version</a>\n",
    "\t\t\t\t\t\t<!-- <a href=\"https://mail.nfu.edu.cn/\" target=\"_blank\">邮箱登录</a>\n",
    "\t\t\t\t\t\t\t<a href=\"mailto:nfcsysuyz@126.com\" target=\"_blank\" title=\"nfcsysuyz@126.com\" >院长信箱</a> -->\n",
    "\t\t\t\t</div>\n",
    "\t\t\t\t<div class=\"lin-ser lin-serhide\">\n",
    "\t\t\t\t\t<div class=\"serbox\">\n",
    "\t\t\t\t\t\t<form action=\"/cms/web/search/index.jsp\" method=\"get\" id=\"search_form\">\n",
    "\t\t\t\t\t\t\t<input name=\"siteID\" value=\"bbef6bf928be491d9180b44993df0ac9\" type =\"hidden\"> \n",
    "\t\t\t\t\t\t\t<input type=\"text\" name=\"query\" id=\"keyword\" placeholder=\"搜索\">\n",
    "\t\t\t\t\t\t\t<a href=\"javascript:;\" id=\"search_btn\">\n",
    "\t\t\t\t\t\t\t</a>\n",
    "\t\t\t\t\t\t</form>\t\n",
    "\t\t\t\t\t\t<script type=\"text/javascript\">\n",
    "\t\t\t\t\t\t\t$(\"#search_btn\").click(function(){\n",
    "\t\t\t\t\t\t\t\tvar keyword=$(\"#keyword\").val();\n",
    "\t\t\t\t\t\t\t\tif(keyword==''){\n",
    "\t\t\t\t\t\t\t\t\talert('* 请输入搜索关键词 !');\n",
    "\t\t\t\t\t\t\t\t\t$(\"#keyword\").focus();\n",
    "\t\t\t\t\t\t\t\t\treturn false;\n",
    "\t\t\t\t\t\t\t\t}else{\n",
    "\t\t\t\t\t\t\t\t\t$(\"#search_form\").submit();\n",
    "\t\t\t\t\t\t\t\t}\n",
    "\t\t\t\t\t\t\t})\n",
    "\t\t\t\t\t\t</script>\n",
    "\t\t\t\t\t</div>\n",
    "\t\t\t\t\t\n",
    "\t\t\t\t</div>\n",
    "\t\t\t</div>\n",
    "\t\t</div>\n",
    "\t</div>\n",
    "\"\"\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'\\n<div class=\"lin-header \">\\n\\t\\t<div class=\"lin-head clearfix\">\\n\\t\\t\\t<h1 class=\"lin-topl\">\\n\\t\\t\\t\\t<a href=\"index.htm\" target=\"_blank\" title=\"广州南方学院\">\\n\\t\\t\\t\\t\\t<img src=\"images/logo.png\">\\n\\t\\t\\t\\t</a>\\n\\t\\t\\t</h1>\\n\\t\\t\\t<div class=\"lin-topr\">\\n\\t\\t\\t\\t<div class=\"lin-youxiang\">\\n\\t\\t\\t\\t\\t<!--<a href=\"http://oa.nfu.edu.cn/\" target=\"_blank\">办公系统</a>-->\\n\\t\\t\\t\\t\\t<a href=\"xcyx/index.htm\">校长邮箱</a>\\n\\t\\t\\t\\t\\t<a href=\"http://en.nfu.edu.cn/\">English Version</a>\\n\\t\\t\\t\\t\\t\\t<!-- <a href=\"https://mail.nfu.edu.cn/\" target=\"_blank\">邮箱登录</a>\\n\\t\\t\\t\\t\\t\\t\\t<a href=\"mailto:nfcsysuyz@126.com\" target=\"_blank\" title=\"nfcsysuyz@126.com\" >院长信箱</a> -->\\n\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t<div class=\"lin-ser lin-serhide\">\\n\\t\\t\\t\\t\\t<div class=\"serbox\">\\n\\t\\t\\t\\t\\t\\t<form action=\"/cms/web/search/index.jsp\" method=\"get\" id=\"search_form\">\\n\\t\\t\\t\\t\\t\\t\\t<input name=\"siteID\" value=\"bbef6bf928be491d9180b44993df0ac9\" type =\"hidden\"> \\n\\t\\t\\t\\t\\t\\t\\t<input type=\"text\" name=\"query\" id=\"keyword\" placeholder=\"搜索\">\\n\\t\\t\\t\\t\\t\\t\\t<a href=\"javascript:;\" id=\"search_btn\">\\n\\t\\t\\t\\t\\t\\t\\t</a>\\n\\t\\t\\t\\t\\t\\t</form>\\t\\n\\t\\t\\t\\t\\t\\t<script type=\"text/javascript\">\\n\\t\\t\\t\\t\\t\\t\\t$(\"#search_btn\").click(function(){\\n\\t\\t\\t\\t\\t\\t\\t\\tvar keyword=$(\"#keyword\").val();\\n\\t\\t\\t\\t\\t\\t\\t\\tif(keyword==\\'\\'){\\n\\t\\t\\t\\t\\t\\t\\t\\t\\talert(\\'* 请输入搜索关键词 !\\');\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t$(\"#keyword\").focus();\\n\\t\\t\\t\\t\\t\\t\\t\\t\\treturn false;\\n\\t\\t\\t\\t\\t\\t\\t\\t}else{\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t$(\"#search_form\").submit();\\n\\t\\t\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t\\t\\t})\\n\\t\\t\\t\\t\\t\\t</script>\\n\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t</div>\\n\\t\\t\\t</div>\\n\\t\\t</div>\\n\\t</div>\\n'"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "广州南方学院官网_HTML"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* 字符串可以用+运算符连接（粘合在一起），并用 重复"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Xu Zhichao\n"
     ]
    }
   ],
   "source": [
    "# 字符串的拼接\n",
    "print(\"Xu\"+\" \"+\"Zhichao\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* 字符串可以被索引（下标）\n",
    "> 请大家尝试写下 course_name[0] course_name[1] course_name[2]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'interactive-media-production'"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "course_name = \"interactive-media-production\"\n",
    "course_name"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "4"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "course_name.count(\"i\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'med'"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "course_name[12] + course_name[13] + course_name[14]\n",
    "# 尝试取出 media "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'media'"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "course_name[12:17]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'cti'"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "course_name[-5:-2]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* 切片（slice）的性质：\n",
    "> 1. [值1:值2] 值1<值2\n",
    "> 2. [值1:值2] 值2 是取不到的"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* 后面还有，请同学们们先自己来尝试练习噢~ 自觉决定高度~"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 数值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "300"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "100+200"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'int'>\n"
     ]
    }
   ],
   "source": [
    "print(type(2021))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'float'>\n"
     ]
    }
   ],
   "source": [
    "print(type(3.1415926))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'complex'>\n"
     ]
    }
   ],
   "source": [
    "print(type(3+2j))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 数值和字符串 要分清！！！ 傻傻分不清！"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [],
   "source": [
    "a = \"50\"  # 引号括起来的不是数值，哪怕它里面是数值\n",
    "b = 40"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "ename": "TypeError",
     "evalue": "can only concatenate str (not \"int\") to str",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mTypeError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-50-bd58363a63fc>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0ma\u001b[0m \u001b[1;33m+\u001b[0m \u001b[0mb\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[1;31mTypeError\u001b[0m: can only concatenate str (not \"int\") to str"
     ]
    }
   ],
   "source": [
    "a + b"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 课后作业（打印当天的课程表）：\n",
    "* 1. 使用time模块获取当天是周几？\n",
    "* 2. 获取到周几之后，print(\"上午9:45-12:00 --- xxx课程，好开心呀，\") 可以尝试打印的好看一点\n",
    "> 一定要用到 if 条件判断 \n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "weekly\n",
    "周一至周五的课程 = \"\"\n",
    "if weely == 1:\n",
    "    print(周一的课程)\n",
    "elif weekly ==2:\n",
    "    print(周二的课程)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
